#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <pthread.h>
#include <stdlib.h>

void* thr(void* arg) {
    printf("子线程 pid = %d, id = %d\n", getpid(), pthread_self());
    sleep(1);
}


int main()
{
    // 声明线程属性类型变量
    pthread_attr_t attr;

    // 初始化该变量
    pthread_attr_init(&attr);
    
    // 设置线程分离属性
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

    // 创建子线程
    pthread_t tid;
    int ret = pthread_create(&tid, &attr, thr, NULL);  // 此时创建的线程，就是分离属性
    if(ret != 0) {
        printf("pthread_create err: %s", strerror(ret));
        exit(1);
    }

    printf("主线程 pid = %d, id = %d\n", getpid(), pthread_self());
    
    // 销毁线程属性资源
    pthread_attr_destroy(&attr);
    
    // 验证线程是否时分离状态
    ret = pthread_join(tid, NULL);
    if(ret != 0) {
        printf("pthread_join err: %s\n", strerror(ret));
    }

    return 0;
}

